package com.knife.lov.infra.annotations;


import com.knife.lov.infra.constants.CodeValueSupportType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author qiang.zhang
 * date 2021-11-13 9:39
 * 值集注解：作用于字段，如果存在字段需要值集翻译处理的要改注解标注
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface KnifeLovValue {

    /**
     * 值集编码
     *
     * @return 值集编码
     */
    String lovCode();

    /**
     * 值集翻译后映射的字段名
     *
     * @return 值集翻译后映射的字段名
     */
    String meaningField();


    /**
     * 值集内容默认进行按逗号切分，支持自定义
     *
     * @return 值集内容默认进行按逗号切分
     * @author tianhao.luo@hand-china.com
     * @date 2021/11/15 5:03 下午
     */
    String splitSymbol() default ",";


    /**
     * 取代码维护的字段
     *
     * @return 默认取代码维护的含义字段
     * @author tianhao.luo@hand-china.com
     * @date 2021/11/16 1:55 下午
     */
    CodeValueSupportType supportType() default CodeValueSupportType.MEANING;
}
